#ifndef _RenderOperation_H__
#define _RenderOperation_H__

#include "VertexIndexData.h"

namespace PVM
{
	class RenderOperation
	{
	public:
		enum OperationType
		{
			OT_POINT_LIST = 1,
			OT_LINE_LIST = 2,
			OT_LINE_STRIP = 3,
			OT_TRIANGLE_LIST = 4,
			OT_TRIANGLE_STRIP = 5,
			OT_TRIANGLE_FAN = 6
		};
		
		VertexData* vertexData;
		
		OperationType operationType;
		
		bool useIndexes;
		
		IndexData* indexData;
		const Renderable* srcRenderable;
		
		size_t numberOfInstances;
		
		bool useGlobalInstancingVertexBufferIsAvailable;
		
		RenderOperation() : 
		VertexData(0), operationType(OT_TRIANGLE_LIST), useIndexes(true),
		indexData(0), srcRenderable(0), numberOfInstances(1),
		useGlobalInstancingVertexBufferIsAvailable(true) {}
	};
}

#endif
